This invention relates to computer-controlled graphical drawing and editing systems and methods.
Graphical drawing and editing systems are generally of two kinds: painting programs and structured drawing programs. Painting programs allow the user to paint lines (or "spray" patterns) and erase on an image-based representation, usually a two-dimensional array of pixels. Structured drawing programs allow the user to create, modify, and delete geometrically-defined objects. An object-based representation, as distinguished from an image representation, has many advantages for computation, but the user interface to such a representation has typically used more discrete actions. While many drawing systems allow drawing and, for example, erasing of images with pen-based motions, it is accomplished on a pixel by pixel basis of the pixel-array image representation. Where object-based representations are used, erasing has been done by enclosing the object and then evoking a delete operation.
In graphical user interfaces to programs that work on object-based and other representations, there is a general user interface issue of how the user can select objects to operate on. Most graphical user interfaces provide spatial techniques for selecting objects. The user sweeps across the display to define a rectangle or draws a freehand loop. The rectangle or loop defines a spatial region of the display; the program computes which objects are contained in the region; and these become the selected objects.
The containment calculation needs to know how much of an object's area or extent needs to be properly contained within the region in order to be selected. In practice, programs are able to set useful and workable thresholds for the amount of containment, and so this is a manageable problem. Because these techniques select every object within the region and don't select any objects outside the region, we call these pure spatial closure techniques.
Closure can be modified by groupings (or other higher level structures over the objects). If subsets of displayed objects are contained in groups (the groupings not necessarily being visibly represented), then one may want to treat the groups as wholes for the purposes of selection. That is, either all of the objects in a group are selected or none are. For example, if a group contains five objects and three are selected by pure spatial closure, then all five are selected. This can be seen as a modification of pure spatial closure. On the other hand, if the group is considered an object, then it is still seen as pure spatial closure, where the containment criterion for groups is somewhat different from the criterion for objects.
In this case the groups must be pre-specified and explicit. Sometimes the groupings are implicit, and further, the groupings can be different at different times and for different purposes.